package demo1;

/**
 * @Author 12629
 * @Description：
 */
class Person {

}
//写一个泛型类，其中有个方法，然后求数组中的最大值
class Alg<T extends Comparable<T>> {
    public T findMax(T[] array) {
        T max = array[0];
        for (int i = 1; i < array.length; i++) {
            //引用类型不可以通过 大于和小于进行比较
           if(max.compareTo(array[i]) < 0 ) {
               max = array[i];
           }
        }
        return max;
    }
}
class Alg2 {
    public static<T extends Comparable<T>> T findMax(T[] array) {
        T max = array[0];
        for (int i = 1; i < array.length; i++) {
            //引用类型不可以通过 大于和小于进行比较
            if(max.compareTo(array[i]) < 0 ) {
                max = array[i];
            }
        }
        return max;
    }
}
public class Test2 {

    public static void main(String[] args) {
        Integer[] array = {1,5,2,7,19,4};
        Integer max = Alg2.<Integer>findMax(array);
        System.out.println(max);
    }


    public static void main2(String[] args) {
        Alg<Integer> alg = new Alg<>();
        Integer[] array = {1,5,2,7,19,4};
        Integer max = alg.findMax(array);
        System.out.println(max);

        //Alg<Person> alg2 = new Alg<>();

    }
}
